#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <vector>
using namespace std;
//
//class Solution
//{
//public:
//    vector<vector<int>> generate(int numRows)
//    {
//        vector<vector<int>> vv(numRows);
//        auto itor = vv.begin();
//        size_t i = 0;
//        for (i = 0; i < vv.size(); i++)
//        {
//            vv[i].resize(i + 1, 1);
//        }
//
//        for (i = 2; i < numRows; i++)
//        {
//            size_t j = 0;
//            for (j = 1; j < vv[i].size() - 1; j++)
//            {
//                vv[i][j] = vv[i - 1][j - 1] + vv[i - 1][j];
//            }
//        }
//        return vv;
//    }
//};
//
//int main()
//{
//    Solution s;
//    s.generate(5);
//
//    int x = 3;
//    int y = -3;
//    cout << (y & x) << endl;
//
//    return 0;
//}
//
////1
////00000000000000000000000000000001
//
////-1
////10000000000000000000000000000001
////11111111111111111111111111111110
////11111111111111111111111111111111
//
////2
////00000000000000000000000000000010
//
////-2
////10000000000000000000000000000010
////11111111111111111111111111111101
////11111111111111111111111111111110
//
//
////00000000000000000000000000000010
////&
////00000000000000000000000000000001
//
////00000000000000000000000000000010
////&
////11111111111111111111111111111110
//
//class Solution
//{
//public:
//    vector<int> singleNumber(vector<int>& nums)
//    {
//        int ans = 0;
//        for (auto e : nums)
//        {
//            ans ^= e;
//        }
//
//        int  x = (ans == INT_MIN ? ans : ans & (-ans));
//        vector<int> ret(2);
//        for (auto e : nums)
//        {
//            if ((x & e) == 0)
//            {
//                ret[0] ^= e;
//            }
//            else
//            {
//                ret[1] ^= e;
//            }
//        }
//        return ret;
//    }
//};


class Solution {
public:
    int singleNumber(vector<int>& nums)
    {
        int ret = 0;
        int i = 0;
        for (i = 0; i < nums.size(); i++)
        {
            int flag = 1;
            ret = nums[i];
            int j = 0;
            while (j < nums.size())
            {
                if (ret == nums[j] && i != j)
                {
                    flag = 0;
                    break;
                }
                ++j;
            }
            if (flag)
            {
                break;
            }
        }
        return ret;
    }
};

int main()
{
    Solution s;
    vector<int> v;
    v.reserve(4);
    v.push_back(2);
    v.push_back(2);
    v.push_back(3);
    v.push_back(2);
    cout<<s.singleNumber(v);

    return 0;
}